python - 从 c 字符数组创建 PyString 而不复制
全部标签 如果a是数组,我想要a.index(a.max),但更像Ruby。这应该是显而易见的,但我在so和其他地方找不到答案。显然,我是Ruby的新手。 最佳答案 对于Ruby1.8.7或更高版本:a.each_with_index.max[1]它进行一次迭代。不完全是最语义化的东西,但如果你发现自己经常这样做,我会把它包装在index_of_max方法中。 关于ruby-在Ruby中,获取数组中最大值索引的最简洁方法是什么?,我们在StackOverflow上找到一个类似的问题:
有没有更好的写法:ifmyarray.include?'val1'||myarray.include?'val2'||myarray.include?'val3'||myarray.include?'val4' 最佳答案 使用集合交集(Array#:&):(myarray&["val1","val2","val3","val4"]).present?你也可以循环(any?会在第一次出现时停止):myarray.any?{|x|["val1","val2","val3","val4"].include?(x)}这对于小数组来说没问题,
我想使用单个ruby命令按空格、、和'拆分字符串。word.split将被空格分割;word.split(",")会被,分割;word.split("\'")将按'拆分。如何同时做这三件事? 最佳答案 word="Nowisthe,timefor'allgoodpeople"word.split(/[\s,']/)=>["Now","is","the","time","for","all","good","people"] 关于ruby-用多个定界符拆分字符串,我们在StackOve
我有一个数组和一个返回给定值的值的函数。最终我想创建一个hashmap,它将数组的值作为键值,并将f(key_value)的结果作为值。是否有一种干净、简单的方法,类似于数组的每个/映射,使用block来执行此操作?等价于hsh={}[1,2,3,4].eachdo|x|hsh[x]=f(x)end但看起来更像这个,因为它很简单而且只有一行?results=array.map{|x|f(x)} 最佳答案 请注意,从Ruby2.1.0开始,您还可以使用Array#to_h,像这样:[1,2,3,4].map{|x|[x,f(x)]}.
我有以下格式的数据结构:data_hash=[{price:1,count:3},{price:2,count:3},{price:3,count:3}]有没有一种有效的方法来获取:price的值作为[1,2,3]的数组? 最佳答案 首先,如果您使用的是rubyarray=[{:price=>1,:count=>3},{:price=>2,:count=>3},{:price=>3,:count=>3}]然后得到你需要的:array.map{|x|x[:price]} 关于ruby-
我想截断一个字符串,如下所示:输入:string="abcdasfsasadfsafsafsdafaaaaaaaaaaaaaaaaaaaadddddddddddddd"输出:string="abcdasfsasadfsafsafsdafaa...ddddd" 最佳答案 看看String#truncatefrom或String#truncate_words来自Rails,它部分地确实想要你想要的。如果您测试它是否被截断,您可以在截断部分之后添加一些最后一部分。'Onceuponatimeinaworldfarfaraway'.trun
有没有一种快速的方法来获取Ruby数组中的所有其他条目?奇数或偶数条目值中包含0。我希望能够像这样使用它:array1+=array2.odd_values或putsarray2.odd_values.join("-")例如更新这正是我所追求的,但我确信还有更短的版本。array1.each_with_indexdo|item,index|if(index%2==0)thenarray2.push(item)endend 最佳答案 a=('a'..'z').to_aa.values_at(*a.each_index.select{|
有没有比这更短的方法来找到满足某些条件的数组中的第一个元素:my_array[my_array.index{|x|x.some_test}] 最佳答案 试试这个:my_array.find{|x|x.some_test}或者这里有一个捷径(感谢@LarsHaugseth的提醒)my_array.find(&:some_test) 关于ruby-具有条件的数组的第一个元素,我们在StackOverflow上找到一个类似的问题: https://stackover
如何在Ruby中比较两个字符串或数组? 最佳答案 对于数组,使用减号运算符。例如:>>foo=[1,2,3]=>[1,2,3]>>goo=[2,3,4]=>[2,3,4]>>foo-goo=>[1]这里的最后一行删除了foo中也存在于goo中的所有内容,只留下元素1。我不知道如何对两个字符串执行此操作,但是直到有人知道关于它的帖子,你可以将每个字符串转换将字符串转换为数组,使用减号运算符,然后将结果转换回来。 关于ruby-diff一个ruby字符串或数组,我们在StackOverf
对于Array,有一个漂亮的sort方法来重新排列元素的顺序。我想为字符串实现相同的结果。例如,我有一个字符串str="String",我想用一种简单的方法将它按字母顺序排序为"ginrSt"。是否有一种本地方法可以启用此功能,或者我应该包含来自Enumerable的mixin? 最佳答案 charsmethod返回字符串字符的枚举。str.chars.sort.join#=>"Sginrt"不区分大小写排序:str.chars.sort(&:casecmp).join#=>"ginrSt"